package com.aliyun.messagemgt.entities;

import com.aliyun.messagemgt.common.dto.base.UserInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 
 * @author  byp
 * @date 2020/08/11 
 */
@Accessors(chain = true)
@Data
public class MessageTemplateEntity extends UserInfo implements Serializable {

	private static final long serialVersionUID =  1938200936915191426L;

	/**
	 * 消息模板主键id
	 */
	@ApiModelProperty(value = "消息模板主键id")
	private Long id;

	/**
	 * 租户编码
	 */
	@ApiModelProperty(value = "租户编码")
	private String tenantCode;

	/**
	 * 关联消息源UUID
	 */
/*
	@ApiModelProperty(value = "关联消息源UUID")
	private String msgSourceId;
*/

	/**
	 * 消息模板id
	 */
	/*@ApiModelProperty(value = "消息模板id")
	private String templateId;*/

	/**
	 * 消息模板编码
	 */
	@ApiModelProperty(value = "消息模板编码",name = "templateCode")
	private String templateCode;

	/**
	 * 模板名称
	 */
	@ApiModelProperty(value = "模板名称", name = "templateName")
	private String templateName;

	@ApiModelProperty(value = "租户名称")
	private String tenantName;

	/**
	 * 模板标题
	 */
	@ApiModelProperty(value = "模板标题")
	private String templateTitle;


	/*
	@ApiModelProperty(value = "模板标题")
	private String title;


	@ApiModelProperty(value = "模板类型 1-APP模板 2-短信模板")
	private Integer type;*/

	/**
	 * 业务类型
	 */
	@ApiModelProperty(value = "业务类型")
	private String busType;

	/**
	 * 模板字段
	 */
/*
	@ApiModelProperty(value = "模板字段")
	private String fields;
*/

	/**
	 * 模板内容
	 */
	@ApiModelProperty(value = "模板内容")
	private String templateContent;

	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	private String description;

	/**
	 * 审批状态 2未提交 0 未审核 -1 审核未通过 1 审核通过
	 */
/*	@ApiModelProperty(value = "审批状态 2未提交 0 未审核 -1 审核未通过 1 审核通过")
	private Integer auditStatus;*/

	/**
	 * 审批意见
	 */
/*	@ApiModelProperty(value = "审批意见")
	private String auditDescribe;*/

	@ApiModelProperty(value = "消息模板状态 Y-启用 N-禁用")
	private String isEnabled;

	/**
	 * 是否逻辑删除 Y-已删除 N-未删除
	 */
	@ApiModelProperty(value = "是否逻辑删除 Y-已删除 N-未删除")
	private String isDeleted;

	/**
	 * 管理员
	 */
	@ApiModelProperty(value = "管理员")
	private String owner;

	/**
	 * 管理员编码
	 */
	@ApiModelProperty(value = "管理员编码")
	private String ownerCode;

	/**
	 * 归属部门编码
	 */
//	@ApiModelProperty(value = "归属部门编码")
//	private String ownerDept;

	/**
	 * 归属部门名称
	 */
//	@ApiModelProperty(value = "归属部门名称")
//	private String ownerDeptName;

	@ApiModelProperty(value = "创建人")
	private String creator;

	/**
	 * 创建人编码
	 */
	@ApiModelProperty(value = "创建人编码")
	private String createUserCode;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date gmtCreated;

	/**
	 * 更新人
	 */
	@ApiModelProperty(value = "修改人")
	private String modifier;

	/**
	 * 更新人编码
	 */
	@ApiModelProperty(value = "更新人编码")
	private String updateUserCode;

	/**
	 * 更新时间
	 */
	@ApiModelProperty(value = "修改时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date gmtModified;

	@ApiModelProperty(value = "attribute1")
	private String attribute1;

	@ApiModelProperty(value = "attribute2")
	private String attribute2;

	@ApiModelProperty(value = "attribute3")
	private String attribute3;

	/**
	 * 签名
	 */
	@ApiModelProperty(value = "签名")
	private Integer smsSignId;

	/**
	 * 签名
	 */
	@ApiModelProperty(value = "签名")
	private String signName;

	@ApiModelProperty(value = "查询开始时间", name = "beginTime")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date beginTime;

	@ApiModelProperty(value = "查询结束时间", name = "endTime")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date endTime;

	@ApiModelProperty(value = "创建时间排序", example = "DESC-倒叙 ASC-正序")
	private String orderBy;

	@ApiModelProperty(value = "租户code列表", name = "tenantCodeList")
	private List<String> tenantCodeList;
}
